package br.com.werp.regras.suporte.integracao;

import br.com.werp.regras.geral.integracao.MasterDAO;
import br.com.werp.regras.geral.util.Constantes;
import br.com.werp.regras.geral.vos.tabelas.Fisica;
import br.com.werp.regras.geral.vos.tabelas.Funcionario;
import br.com.werp.regras.geral.vos.tabelas.Pessoa;

import java.sql.Connection;
import java.util.ResourceBundle;


/**
 * @author Sobreira
 * Criado em 17/12/2004
 *
 */
public class PessoalDAO extends MasterDAO {
	
	private static PessoalDAO pessoalDAO;
	
    /**
     * @param banco
     * @throws Exception
     */
    private PessoalDAO(String banco) throws Exception {
        super(banco);
    }
    
    public static PessoalDAO getPessoalDAO() throws Exception {
        if (pessoalDAO == null) {
            ResourceBundle bundle = ResourceBundle.getBundle(Constantes.CONFIG);
            pessoalDAO = new PessoalDAO(bundle.getString(Constantes.BANCO));
        }

        return pessoalDAO;
    }

    /**
     * @param tk
     * @param pessoa
     * @throws Exception
     */
    public void inserirPessoa(Object tk, Pessoa pessoa)
        throws Exception {
        Connection connection = validarTransacao(tk);
        inserirVO(connection, pessoa);
    }

    /**
     * @param tk
     * @param fisica
     * @throws Exception
     */
    public void inserirPessoaFisica(Object tk, Fisica fisica)
        throws Exception {
        Connection connection = validarTransacao(tk);
        inserirVO(connection, fisica);
    }

    /**
     * @param tk
     * @param funcionario
     * @throws Exception
     */
    public void inserirFuncionario(Object tk, Funcionario funcionario)
        throws Exception {
        Connection connection = validarTransacao(tk);
        inserirVO(connection, funcionario);
    }
}
